home *** CD-ROM | disk | FTP | other *** search
- /*
- * VirtuaLight's binary .VIB format API, sample 5
- * Written by Stephane Marty, 09/27/2001
- *
- * This sample program writes a binary VIB file
- * describing the Newell's teapot made of 32
- * Bezier bicubic patches.
- */
-
- #include "..\vlBinDef.h"
-
- #ifdef WIN32
- #pragma warning( disable : 4305 )
- #endif
-
- #define U_ORD 12
- #define V_ORD 12
-
- // The following data define the teapot
- // rim
- viVECTOR curve01[16] = {
- {1.4, 2.4, 0}, {1.4, 2.4, -0.784}, {0.784, 2.4, -1.4}, {0, 2.4, -1.4},
- {1.3375, 2.53125, 0}, {1.3375, 2.53125, -0.749}, {0.749, 2.53125, -1.3375}, {0, 2.53125, -1.3375},
- {1.4375, 2.53125, 0}, {1.4375, 2.53125, -0.805}, {0.805, 2.53125, -1.4375}, {0, 2.53125, -1.4375},
- {1.5, 2.4, 0}, {1.5, 2.4, -0.84}, {0.84, 2.4, -1.5}, {0, 2.4, -1.5}
- };
- viVECTOR curve02[16] = {
- {0, 2.4, -1.4}, {-0.784, 2.4, -1.4}, {-1.4, 2.4, -0.784}, {-1.4, 2.4, 0},
- {0, 2.53125, -1.3375}, {-0.749, 2.53125, -1.3375}, {-1.3375, 2.53125, -0.749}, {-1.3375, 2.53125, 0},
- {0, 2.53125, -1.4375}, {-0.805, 2.53125, -1.4375}, {-1.4375, 2.53125, -0.805}, {-1.4375, 2.53125, 0},
- {0, 2.4, -1.5}, {-0.84, 2.4, -1.5}, {-1.5, 2.4, -0.84}, {-1.5, 2.4, 0}
- };
- viVECTOR curve03[16] = {
- {-1.4, 2.4, 0}, {-1.4, 2.4, 0.784}, {-0.784, 2.4, 1.4}, {0, 2.4, 1.4},
- {-1.3375, 2.53125, 0}, {-1.3375, 2.53125, 0.749}, {-0.749, 2.53125, 1.3375}, {0, 2.53125, 1.3375},
- {-1.4375, 2.53125, 0}, {-1.4375, 2.53125, 0.805}, {-0.805, 2.53125, 1.4375}, {0, 2.53125, 1.4375},
- {-1.5, 2.4, 0}, {-1.5, 2.4, 0.84}, {-0.84, 2.4, 1.5}, {0, 2.4, 1.5}
- };
- viVECTOR curve04[16] = {
- {0, 2.4, 1.4}, {0.784, 2.4, 1.4}, {1.4, 2.4, 0.784}, {1.4, 2.4, 0},
- {0, 2.53125, 1.3375}, {0.749, 2.53125, 1.3375}, {1.3375, 2.53125, 0.749}, {1.3375, 2.53125, 0},
- {0, 2.53125, 1.4375}, {0.805, 2.53125, 1.4375}, {1.4375, 2.53125, 0.805}, {1.4375, 2.53125, 0},
- {0, 2.4, 1.5}, {0.84, 2.4, 1.5}, {1.5, 2.4, 0.84}, {1.5, 2.4, 0}
- };
- // body
- viVECTOR curve05[16] = {
- {1.5, 2.4, 0}, {1.5, 2.4, -0.84}, {0.84, 2.4, -1.5}, {0, 2.4, -1.5},
- {1.75, 1.875, 0}, {1.75, 1.875, -0.98}, {0.98, 1.875, -1.75}, {0, 1.875, -1.75},
- {2, 1.35, 0}, {2, 1.35, -1.12}, {1.12, 1.35, -2}, {0, 1.35, -2},
- {2, 0.9, 0}, {2, 0.9, -1.12}, {1.12, 0.9, -2}, {0, 0.9, -2}
- };
- viVECTOR curve06[16] = {
- {0, 2.4, -1.5}, {-0.84, 2.4, -1.5}, {-1.5, 2.4, -0.84}, {-1.5, 2.4, 0},
- {0, 1.875, -1.75}, {-0.98, 1.875, -1.75}, {-1.75, 1.875, -0.98}, {-1.75, 1.875, 0},
- {0, 1.35, -2}, {-1.12, 1.35, -2}, {-2, 1.35, -1.12}, {-2, 1.35, 0},
- {0, 0.9, -2}, {-1.12, 0.9, -2}, {-2, 0.9, -1.12}, {-2, 0.9, 0}
- };
- viVECTOR curve07[16] = {
- {-1.5, 2.4, 0}, {-1.5, 2.4, 0.84}, {-0.84, 2.4, 1.5}, {0, 2.4, 1.5},
- {-1.75, 1.875, 0}, {-1.75, 1.875, 0.98}, {-0.98, 1.875, 1.75}, {0, 1.875, 1.75},
- {-2, 1.35, 0}, {-2, 1.35, 1.12}, {-1.12, 1.35, 2}, {0, 1.35, 2},
- {-2, 0.9, 0}, {-2, 0.9, 1.12}, {-1.12, 0.9, 2}, {0, 0.9, 2}
- };
- viVECTOR curve08[16] = {
- {0, 2.4, 1.5}, {0.84, 2.4, 1.5}, {1.5, 2.4, 0.84}, {1.5, 2.4, 0},
- {0, 1.875, 1.75}, {0.98, 1.875, 1.75}, {1.75, 1.875, 0.98}, {1.75, 1.875, 0},
- {0, 1.35, 2}, {1.12, 1.35, 2}, {2, 1.35, 1.12}, {2, 1.35, 0},
- {0, 0.9, 2}, {1.12, 0.9, 2}, {2, 0.9, 1.12}, {2, 0.9, 0}
- };
- viVECTOR curve09[16] = {
- {2, 0.9, 0}, {2, 0.9, -1.12}, {1.12, 0.9, -2}, {0, 0.9, -2},
- {2, 0.45, 0}, {2, 0.45, -1.12}, {1.12, 0.45, -2}, {0, 0.45, -2},
- {1.5, 0.225, 0}, {1.5, 0.225, -0.84}, {0.84, 0.225, -1.5}, {0, 0.225, -1.5},
- {1.5, 0.15, 0}, {1.5, 0.15, -0.84}, {0.84, 0.15, -1.5}, {0, 0.15, -1.5}
- };
- viVECTOR curve10[16] = {
- {0, 0.9, -2}, {-1.12, 0.9, -2}, {-2, 0.9, -1.12}, {-2, 0.9, 0},
- {0, 0.45, -2}, {-1.12, 0.45, -2}, {-2, 0.45, -1.12}, {-2, 0.45, 0},
- {0, 0.225, -1.5}, {-0.84, 0.225, -1.5}, {-1.5, 0.225, -0.84}, {-1.5, 0.225, 0},
- {0, 0.15, -1.5}, {-0.84, 0.15, -1.5}, {-1.5, 0.15, -0.84}, {-1.5, 0.15, 0}
- };
- viVECTOR curve11[16] = {
- {-2, 0.9, 0}, {-2, 0.9, 1.12}, {-1.12, 0.9, 2}, {0, 0.9, 2},
- {-2, 0.45, 0}, {-2, 0.45, 1.12}, {-1.12, 0.45, 2}, {0, 0.45, 2},
- {-1.5, 0.225, 0}, {-1.5, 0.225, 0.84}, {-0.84, 0.225, 1.5}, {0, 0.225, 1.5},
- {-1.5, 0.15, 0}, {-1.5, 0.15, 0.84}, {-0.84, 0.15, 1.5}, {0, 0.15, 1.5}
- };
- viVECTOR curve12[16] = {
- {0, 0.9, 2}, {1.12, 0.9, 2}, {2, 0.9, 1.12}, {2, 0.9, 0},
- {0, 0.45, 2}, {1.12, 0.45, 2}, {2, 0.45, 1.2}, {2, 0.45, 0},
- {0, 0.225, 1.5}, {0.84, 0.225, 1.5}, {1.5, 0.225, 0.84}, {1.5, 0.225, 0},
- {0, 0.15, 1.5}, {0.84, 0.15, 1.5}, {1.5, 0.15, 0.84}, {1.5, 0.15, 0}
- };
- // handle
- viVECTOR curve13[16] = {
- {-1.6, 2.025, 0}, {-1.6, 2.025, -0.3}, {-1.5, 2.25, -0.3}, {-1.5, 2.25, 0},
- {-2.3, 2.025, 0}, {-2.3, 2.025, -0.3}, {-2.5, 2.25, -0.3}, {-2.5, 2.25, 0},
- {-2.7, 2.025, 0}, {-2.7, 2.025, -0.3}, {-3, 2.25, -0.3}, {-3, 2.25, 0},
- {-2.7, 1.8, 0}, {-2.7, 1.8, -0.3}, {-3, 1.8, -0.3}, {-3, 1.8, 0}
- };
- viVECTOR curve14[16] = {
- {-1.5, 2.25, 0}, {-1.5, 2.25, 0.3}, {-1.6, 2.025, 0.3}, {-1.6, 2.025, 0},
- {-2.5, 2.25, 0}, {-2.5, 2.25, 0.3}, {-2.3, 2.025, 0.3}, {-2.3, 2.025, 0},
- {-3, 2.25, 0}, {-3, 2.25, 0.3}, {-2.7, 2.025, 0.3}, {-2.7, 2.025, 0},
- {-3, 1.8, 0}, {-3, 1.8, 0.3}, {-2.7, 1.8, 0.3}, {-2.7, 1.8, 0}
- };
- viVECTOR curve15[16] = {
- {-2.7, 1.8, 0}, {-2.7, 1.8, -0.3}, {-3, 1.8, -0.3}, {-3, 1.8, 0},
- {-2.7, 1.575, 0}, {-2.7, 1.575, -0.3}, {-3, 1.35, -0.3}, {-3, 1.35, 0},
- {-2.5, 1.125, 0}, {-2.5, 1.125, -0.3}, {-2.65, 0.9375, -0.3}, {-2.65, 0.9375, 0},
- {-2, 0.9, 0}, {-2, 0.9, -0.3}, {-1.9, 0.6, -0.3}, {-1.9, 0.6, 0}
- };
- viVECTOR curve16[16] = {
- {-3, 1.8, 0}, {-3, 1.8, 0.3}, {-2.7, 1.8, 0.3}, {-2.7, 1.8, 0},
- {-3, 1.35, 0}, {-3, 1.35, 0.3}, {-2.7, 1.575, 0.3}, {-2.7, 1.575, 0},
- {-2.65, 0.9375, 0}, {-2.65, 0.9375, 0.3}, {-2.5, 1.125, 0.3}, {-2.5, 1.125, 0},
- {-1.9, 0.6, 0}, {-1.9, 0.6, 0.3}, {-2, 0.9, 0.3}, {-2, 0.9, 0}
- };
- // spout
- viVECTOR curve17[16] = {
- {1.7, 1.425, 0}, {1.7, 1.425, -0.66}, {1.7, 0.6, -0.66}, {1.7, 0.6, 0},
- {2.6, 1.425, 0}, {2.6, 1.425, -0.66}, {3.1, 0.825, -0.66}, {3.1, 0.825, 0},
- {2.3, 2.1, 0}, {2.3, 2.1, -0.25}, {2.4, 2.025, -0.25}, {2.4, 2.025, 0},
- {2.7, 2.4, 0}, {2.7, 2.4, -0.25}, {3.3, 2.4, -0.25}, {3.3, 2.4, 0}
- };
- viVECTOR curve18[16] = {
- {1.7, 0.6, 0}, {1.7, 0.6, 0.66}, {1.7, 1.425, 0.66}, {1.7, 1.425, 0},
- {3.1, 0.825, 0}, {3.1, 0.825, 0.66}, {2.6, 1.425, 0.66}, {2.6, 1.425, 0},
- {2.4, 2.025, 0}, {2.4, 2.025, 0.25}, {2.3, 2.1, 0.25}, {2.3, 2.1, 0},
- {3.3, 2.4, 0}, {3.3, 2.4, 0.25}, {2.7, 2.4, 0.25}, {2.7, 2.4, 0}
- };
- viVECTOR curve19[16] = {
- {2.7, 2.4, 0}, {2.7, 2.4, -0.25}, {3.3, 2.4, -0.25}, {3.3, 2.4, 0},
- {2.8, 2.475, 0}, {2.8, 2.475, -0.25}, {3.525, 2.49375, -0.25}, {3.525, 2.49375, 0},
- {2.9, 2.475, 0}, {2.9, 2.475, -0.15}, {3.45, 2.5125, -0.15}, {3.45, 2.5125, 0},
- {2.8, 2.4, 0}, {2.8, 2.4, -0.15}, {3.2, 2.4, 0}, {3.2, 2.4, 0}
- };
- viVECTOR curve20[16] = {
- {3.3, 2.4, 0}, {3.3, 2.4, 0.25}, {2.7, 2.4, 0.25}, {2.7, 2.4, 0},
- {3.525, 2.49375, 0}, {3.525, 2.49375, 0.25}, {2.8, 2.475, 0.25}, {2.8, 2.475, 0},
- {3.45, 2.5125, 0}, {3.45, 2.5125, 0.15}, {2.9, 2.475, 0.15}, {2.9, 2.475, 0},
- {3.2, 2.4, 0}, {3.2, 2.4, 0.15}, {2.8, 2.4, 0.15}, {2.8, 2.4, 0}
- };
- // lid
- viVECTOR curve21[16] = {
- {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0},
- {0.8, 3.15, 0}, {0.8, 3.15, -0.45}, {0.45, 3.15, -0.8}, {0, 3.15, -0.8},
- {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0},
- {0.2, 2.7, 0}, {0.2, 2.7, -0.112}, {0.112, 2.7, -0.2}, {0, 2.7, -0.2}
- };
- viVECTOR curve22[16] = {
- {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0},
- {0, 3.15, -0.8}, {-0.45, 3.15, -0.8}, {-0.8, 3.15, -0.45}, {-0.8, 3.15, 0},
- {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0},
- {0, 2.7, -0.2}, {-0.112, 2.7, -0.2}, {-0.2, 2.7, -0.112}, {-0.2, 2.7, 0}
- };
- viVECTOR curve23[16] = {
- {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0},
- {-0.8, 3.15, 0}, {-0.8, 3.15, 0.45}, {-0.45, 3.15, 0.8}, {0, 3.15, 0.8},
- {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0},
- {-0.2, 2.7, 0}, {-0.2, 2.7, 0.112}, {-0.112, 2.7, 0.2}, {0, 2.7, 0.2}
- };
- viVECTOR curve24[16] = {
- {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0}, {0, 3.15, 0},
- {0, 3.15, 0.8}, {0.45, 3.15, 0.8}, {0.8, 3.15, 0.45}, {0.8, 3.15, 0},
- {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0}, {0, 2.85, 0},
- {0, 2.7, 0.2}, {0.112, 2.7, 0.2}, {0.2, 2.7, 0.112}, {0.2, 2.7, 0}
- };
- viVECTOR curve25[16] = {
- {0.2, 2.7, 0}, {0.2, 2.7, -0.112}, {0.112, 2.7, -0.2}, {0, 2.7, -0.2},
- {0.4, 2.55, 0}, {0.4, 2.55, -0.224}, {0.224, 2.55, -0.4}, {0, 2.55, -0.4},
- {1.3, 2.55, 0}, {1.3, 2.55, -0.728}, {0.728, 2.55, -1.3}, {0, 2.55, -1.3},
- {1.3, 2.4, 0}, {1.3, 2.4, -0.728}, {0.728, 2.4, -1.3}, {0, 2.4, -1.3}
- };
- viVECTOR curve26[16] = {
- {0, 2.7, -0.2}, {-0.112, 2.7, -0.2}, {-0.2, 2.7, -0.112}, {-0.2, 2.7, 0},
- {0, 2.55, -0.4}, {-0.224, 2.55, -0.4}, {-0.4, 2.55, -0.224}, {-0.4, 2.55, 0},
- {0, 2.55, -1.3}, {-0.728, 2.55, -1.3}, {-1.3, 2.55, -0.728}, {-1.3, 2.55, 0},
- {0, 2.4, -1.3}, {-0.728, 2.4, -1.3}, {-1.3, 2.4, -0.728}, {-1.3, 2.4, 0}
- };
- viVECTOR curve27[16] = {
- {-0.2, 2.7, 0}, {-0.2, 2.7, 0.112}, {-0.112, 2.7, 0.2}, {0, 2.7, 0.2},
- {-0.4, 2.55, 0}, {-0.4, 2.55, 0.224}, {-0.224, 2.55, 0.4}, {0, 2.55, 0.4},
- {-1.3, 2.55, 0}, {-1.3, 2.55, 0.728}, {-0.728, 2.55, 1.3}, {0, 2.55, 1.3},
- {-1.3, 2.4, 0}, {-1.3, 2.4, 0.728}, {-0.728, 2.4, 1.3}, {0, 2.4, 1.3}
- };
- viVECTOR curve28[16] = {
- {0, 2.7, 0.2}, {0.112, 2.7, 0.2}, {0.2, 2.7, 0.112}, {0.2, 2.7, 0},
- {0, 2.55, 0.4}, {0.224, 2.55, 0.4}, {0.4, 2.55, 0.224}, {0.4, 2.55, 0},
- {0, 2.55, 1.3}, {0.728, 2.55, 1.3}, {1.3, 2.55, 0.728}, {1.3, 2.55, 0},
- {0, 2.4, 1.3}, {0.728, 2.4, 1.3}, {1.3, 2.4, 0.728}, {1.3, 2.4, 0}
- };
- // bottom
- viVECTOR curve29[16] = {
- {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
- {1.425, 0, 0}, {1.425, 0, 0.798}, {0.798, 0, 1.425}, {0, 0, 1.425},
- {1.5, 0.075, 0}, {1.5, 0.075, 0.84}, {0.84, 0.075, 1.5}, {0, 0.075, 1.5},
- {1.5, 0.15, 0}, {1.5, 0.15, 0.84}, {0.84, 0.15, 1.5}, {0, 0.15, 1.5}
- };
- viVECTOR curve30[16] = {
- {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
- {0, 0, 1.425}, {-0.798, 0, 1.425}, {-1.425, 0, 0.798}, {-1.425, 0, 0},
- {0, 0.075, 1.5}, {-0.84, 0.075, 1.5}, {-1.5, 0.075, 0.84}, {-1.5, 0.075, 0},
- {0, 0.15, 1.5}, {-0.84, 0.15, 1.5}, {-1.5, 0.15, 0.84}, {-1.5, 0.15, 0}
- };
- viVECTOR curve31[16] = {
- {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
- {-1.425, 0, 0}, {-1.425, 0, -0.798}, {-0.798, 0, -1.425}, {0, 0, -1.425},
- {-1.5, 0.075, 0}, {-1.5, 0.075, -0.84}, {-0.84, 0.075, -1.5}, {0, 0.075, -1.5},
- {-1.5, 0.15, 0}, {-1.5, 0.15, -0.84}, {-0.84, 0.15, -1.5}, {0, 0.15, -1.5}
- };
- viVECTOR curve32[16] = {
- {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0},
- {0, 0, -1.425}, {0.798, 0, -1.425}, {1.425, 0, -0.798}, {1.425, 0, 0},
- {0, 0.075, -1.5}, {0.84, 0.075, -1.5}, {1.5, 0.075, -0.84}, {1.5, 0.075, 0},
- {0, 0.15, -1.5}, {0.84, 0.15, -1.5}, {1.5, 0.15, -0.84}, {1.5, 0.15, 0}
- };
-
- static void
- AddBicubicPatchToTeapot(viVECTOR *curve, viFILE *vib)
- {
- viINT i;
- viBEZIER b;
-
- viSetByte(b.basis, BEZIER_MATRIX);
- viSetInt(b.ustep, U_ORD);
- viSetInt(b.vstep, V_ORD);
- for (i=0; i<16; i++)
- viCopyVector(&b.vertices[i], &curve[i]);
- viDumpBicubicPatch(&b, vib);
- }
-
- void main(void)
- {
- viDISK disk;
- viCAMERA *cam;
- viFILE *vib;
- viVECTOR vec;
- viSKY_DOME *sky;
-
- // Open a new VIB file
- vib = viNewBinaryVIB("sample8.vib");
-
- // Add the camera (low adaptive antialiasing enabled)
- cam = viNewCamera();
- viSetInt(cam->Format.X, 256);
- viSetInt(cam->Format.Y, 256);
- viSetDbl(cam->FrameAspectRatio, 1.0);
- viSetVector(&cam->Location, 1, 3, -5);
- viSetVector(&cam->LookAt, 0, 0.4, 0);
- viSetVector(&cam->UpAxis, 0, 1, 0);
- viSetDbl(cam->FieldOfView, 40);
- viSetInt(cam->Antialiasing, 1);
- viDumpCamera(cam, vib);
- free(cam);
-
- // Set skylight and sunlight
- sky = viNewSkyDome();
- viSetByte(sky->SkyLight.Enabled, TRUE);
- viSetInt(sky->SkyLight.samples, 90);
- viSetDbl(sky->SkyLight.brightness, 1.25);
- viSetColor(&sky->SkyLight.color, 0.975, 0.975, 0.99);
- viSetByte(sky->SunLight.Enabled, TRUE);
- viSetInt(sky->SunLight.hours, 13);
- viSetInt(sky->SunLight.minutes, 15);
- viSetDbl(sky->SunLight.brightness, 0.7);
- viDumpSkyDome(sky, vib);
- free(sky);
-
- /*
- * create the teapot
- */
- viDeclareNewObject("teapot", vib);
- AddBicubicPatchToTeapot(curve01, vib);
- AddBicubicPatchToTeapot(curve02, vib);
- AddBicubicPatchToTeapot(curve03, vib);
- AddBicubicPatchToTeapot(curve04, vib);
- AddBicubicPatchToTeapot(curve05, vib);
- AddBicubicPatchToTeapot(curve06, vib);
- AddBicubicPatchToTeapot(curve07, vib);
- AddBicubicPatchToTeapot(curve08, vib);
- AddBicubicPatchToTeapot(curve09, vib);
- AddBicubicPatchToTeapot(curve10, vib);
- AddBicubicPatchToTeapot(curve11, vib);
- AddBicubicPatchToTeapot(curve12, vib);
- AddBicubicPatchToTeapot(curve13, vib);
- AddBicubicPatchToTeapot(curve14, vib);
- AddBicubicPatchToTeapot(curve15, vib);
- AddBicubicPatchToTeapot(curve16, vib);
- AddBicubicPatchToTeapot(curve17, vib);
- AddBicubicPatchToTeapot(curve18, vib);
- AddBicubicPatchToTeapot(curve19, vib);
- AddBicubicPatchToTeapot(curve20, vib);
- AddBicubicPatchToTeapot(curve21, vib);
- AddBicubicPatchToTeapot(curve22, vib);
- AddBicubicPatchToTeapot(curve23, vib);
- AddBicubicPatchToTeapot(curve24, vib);
- AddBicubicPatchToTeapot(curve25, vib);
- AddBicubicPatchToTeapot(curve26, vib);
- AddBicubicPatchToTeapot(curve27, vib);
- AddBicubicPatchToTeapot(curve28, vib);
- AddBicubicPatchToTeapot(curve29, vib);
- AddBicubicPatchToTeapot(curve30, vib);
- AddBicubicPatchToTeapot(curve31, vib);
- AddBicubicPatchToTeapot(curve32, vib);
- viEndObjectDeclaration(vib);
-
- // Invoke the object (rotated and scaled down)
- viCallObject("teapot", vib);
- viObjectShaderName("golden_teapot", vib);
- viDumpRotate(viSetVector(&vec, 0, 20, 0), vib);
- viDumpScale(viSetVector(&vec, 0.55, 0.55, 0.55), vib);
- viEndObjectCall(vib);
-
- // Add a simple disk for the floor (detached from the object)
- viPrimitive(vib);
- viSetVector(&disk.center, 0, 0, 0);
- viSetVector(&disk.normal, 0, 1, 0);
- viSetDbl(disk.radius, 500);
- viDumpDisk(&disk, vib);
- viPrimitiveShaderName("ground", vib);
- viEndPrimitive(vib);
-
- // Close the VIB file
- viCloseBinaryVIB(vib);
- }